Python's default implementation, CPython, is single-threaded and doesn't use more than one hardware thread at a time.
Threading in Python provides concurrency, but not parallelism, and may not speed up tasks that require a full CPU.
Python libraries and frameworks like Ray, Dask, and Dispy can help parallelize and distribute workloads across multiple cores and machines.